package com.example.springmvc.controller;

// 模拟登录功能 前端ajax 后端也返回ajax

import com.example.springmvc.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;

@RestController
@RequestMapping("/log")
public class LogController {

    @RequestMapping("/login")
    public HashMap<String, Object> login(@RequestParam("username") String name, String password) {//因为返回的是ajax数据 所以我们使用键值对形式
        HashMap<String, Object> result = new HashMap<>();
        int state = -1;//用来表示状态码
        boolean data = false;//是否登录成功
        String msg = "未知错误";//错误提示

        // spring中提供了一个StringUtils类 里有判空的方法hasLength 能够派单字符串是否是""或者是null
        // 如果不为""也不为null 那么返回true 否则返回false
        if (StringUtils.hasLength(name) && StringUtils.hasLength(password)) {
            if (name.equals("asd") && password.equals("asd")) {
                state = 200;
                data = true;
                msg = "登录成功";
            }else {
                msg = "用户名或者密码错误";
            }
        }else {
            msg = "非法参数";
        }
        
        result.put("data", data);
        result.put("msg", msg);
        result.put("state", state);
        return result;
    }



    // 后端也支持JSON格式数据
    @RequestMapping("/login2")
    public HashMap<String, Object> login2(User user) {//因为返回的是ajax数据 所以我们使用键值对形式
        HashMap<String, Object> result = new HashMap<>();
        int state = -1;//用来表示状态码
        boolean data = false;//是否登录成功
        String msg = "未知错误";//错误提示

        // spring中提供了一个StringUtils类 里有判空的方法hasLength 能够派单字符串是否是""或者是null
        // 如果不为""也不为null 那么返回true 否则返回false
        if (StringUtils.hasLength(user.getUsername()) && StringUtils.hasLength(user.getPassword())) {
            if (user.getUsername().equals("asd") && user.getPassword().equals("asd")) {
                state = 200;
                data = true;
                msg = "登录成功dlcg";
            }else {
                msg = "用户名或者密码错误";
            }
        }else {
            msg = "非法参数";
        }

        result.put("data", data);
        result.put("msg", msg);
        result.put("state", state);
        return result;
    }
}
